package org.wkg.lesson12;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.concurrent.ConcurrentHashMap;

public class Demo_1201 {

    public static void main(String[] args) {
        HashMap hashMap = new HashMap();   //多线程中不安全，适合串行
        Hashtable hashtable = new Hashtable();//在进行写入与获取数据时候都要synchronized
        //支持多线程，但执行每一步的时候都需要加锁，而且还是锁整个表，导致效率低下
        ConcurrentHashMap<Integer, String> concurrentHashMap = new ConcurrentHashMap();
        //支持多线程，仅仅在写入数据的时候将此时哈希桶锁定，并不会锁整个表中数据，可以在写入的同时进行多线程读取，保证了效率
        concurrentHashMap.put(1, "hello");
        concurrentHashMap.put(2, "world");

        System.out.println(concurrentHashMap.get(1) + " " + concurrentHashMap.get(2));
        //System.out.println(concurrentHashMap.get(2));
    }
}
